#include <opencv2\opencv.hpp>
#include "VisualizeSurfaceMesh.h"
#include <opencv2\gpu\gpu.hpp>

int main(int argc, char** argv) {
	//cv::gpu::DeviceInfo di(cv::gpu::getDevice());
	//std::cout << di.name() << std::endl;

	try{

		/*cv::Mat input = cv::imread("image.jpg", 1);
		cv::gpu::GpuMat input_gpu(input.rows, input.cols, CV_8UC3);
		input_gpu.upload(input);
		cv::gpu::GpuMat resized_gpu(input.rows*2, input.cols*2, CV_8UC3);
		cv::gpu::resize(input_gpu, resized_gpu, cv::Size(input.cols*2, input.rows*2), cv::INTER_LINEAR);
		cv::Mat resized(input.rows*2, input.cols*2, CV_8UC3);
		resized_gpu.download(resized);
		cv::imshow("resized", resized);
		cv::waitKey();
		*/
		///////////////////////////
		VisualizeSurfaceMesh Visualize;
		Visualize.Process(argc, argv);
	}
	catch (std::exception& ex) {
		std::cout << ex.what() << std::endl;
		char end_key;
		for(;;)
			end_key = cv::waitKey(10);
	}
	return 0;
}